# _*_ coding:utf-8 _*_
# @author : Joyamon
# @time : 2022-12-12 12:38
# @file : sign.py
# flask 信号 ：当用户登录网站的时候，把用户登录日志记录到数据库中
from datetime import datetime
from flask import request
from apps.user.models import Login_log
from blinker import Namespace


from exts import session
# 创建一个命名空间
namespace = Namespace()
# 定义一个登录信号
login_sign = namespace.signal('login')


def login_log(sender, username):  # 第一个参数必须是sender
    ip = request.remote_addr
    login_time = datetime.now()
    recode_log = Login_log(username=username, ip=ip, login_time=login_time)
    session.add(recode_log)
    session.commit()


login_sign.connect(login_log)  # 监听信号要传入一个函数，用于发送信号后执行
